The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
In current implementations of network protocols, multicast load balancing depends on distribution trees that are calculated based on data describing various nodes in a network. The nodes may have associated tags, and the tags are generally ordered according to some priority scheme. The tags and the priority schemes may be used in selecting tree-roots for the network. The term “tree-root” refers to a root node of a multicast distribution tree. All nodes are a part of the distribution tree.
The priority tags may be assigned to nodes according to the priorities assigned to the nodes. Hence, the highest priority tag is typically assigned to the highest priority node; the second highest priority tag is assigned to the second highest priority node, and so on. However, the node priorities are usually generated and assigned by users, and the users may derive the priorities from pseudo-random values, system identifiers and/or MAC addresses. Therefore, selecting tree-roots based on user-defined priorities rarely allows placing the tree-roots in optimal locations in the network. Instead, such tree-roots may be placed at access switches, which often are sub-optimal nodes for the tree-roots. Further, if the trees are ordered according to the user-defined priorities, a configuration change for a high priority tree-root may cause a change in all lower priority tree-roots. Such changes may be disruptive to communications within the network, and may be detrimental for network convergence.